// package语句：声明当前类所在的包路径
// com.itheima.extends4feature 表示当前类在extends4feature包中
package com.itheima.extends4feature;

// public class Test：定义一个公共的类Test
// public表示这个类可以被任何地方的代码访问
public class Test {
    // public static void main(String[] args)：程序的入口方法
    // 这是Java程序执行的起点
    public static void main(String[] args) {
        // 这行注释说明了这段代码的目的：演示继承的基本特点
        // 目标：继承的注意事项：继承的特点。
        
        // 创建A类的对象，变量名是a
        // 这行代码只是简单地实例化了A类，但在本程序中没有使用这个对象
        // 主要是为了展示A类可以被正常创建和使用
        A a = new A();
    }
}

// 以下是对Java继承特点的重要注释和示例

// 1、java的类只能是单继承的，不支持多继承，支持多层继承
// 单继承意味着：一个类只能有一个直接父类
// 多层继承意味着：类可以形成继承链（如A->B->C）

// 2、一个类要么直接继承Object，要么默认继承Object，要么间接继承Object
// Object类是Java中所有类的根类（始祖类）
// 如果一个类没有显式继承其他类，它就默认继承Object类

// class A：定义一个类A
// 由于A类没有显式使用extends关键字继承其他类
// 所以A类默认继承自Object类
class A { }

// class B extends A：定义一个类B，它继承自A类
// 通过extends关键字，B类成为A类的子类
// B类将继承A类的非private成员
// 同时，B类通过A类间接继承了Object类
class B extends A{ }

// class C extends B：定义一个类C，它继承自B类
// 这展示了Java的多层继承特性
// C类继承B类，B类继承A类，A类继承Object类
// 因此，C类可以访问B类和A类的非private成员，并最终间接继承Object类
class C extends B{ }

